//未通过检测项 新增 队列
var checkReportAdd = new Array();
//未通过检测项 删除 队列（删除持久化对象）
var checkReportDel = new Array();

$(function(){
	$(".checkReport .tab-content table .glyphicon-remove.fail").on('click',function(){
		bindEventF($(this));
	});
	
	$(".checkReport .tab-content table .glyphicon.glyphicon-ok").on('click',function(){
		bindEventP($(this));
	});
})

//公司检测结果：未通过转通过  单击事件
function bindEventF(obj){
	//装载数据
	autoLoadDataP($(obj));
	//修改页面显示
	var $parentObj = obj.parent();
	obj.remove();
	var html = '<a class="glyphicon glyphicon-ok" title="通过"></a>';
	$parentObj.append(html);
	var newObj = $parentObj.children(".glyphicon-ok");
	newObj.on('click',function(){
		bindEventP($(this));
	});
}

//检测未通过转通过  装载数据 commit
function autoLoadDataP(obj){
	
	var $parentObj = $(obj).parent();
	var persistence = $(obj).attr("report-persistence");
	var dataId = $(obj).attr("data-id");
	if( persistence == false || persistence == 'false' ){
		//非持久化对象
		var dataCode = $parentObj.attr("data-code");
		reportUniqueCheck(dataCode,2);
	}else{
		reportUniqueCheck(dataId,1);
		checkReportDel.push(dataId);
	}
}

//公司检测结果：通过转未通过  单击事件
function bindEventP(obj){
	var $parentObj = obj.parent();
	obj.remove();
	var html = new Array();
	//html.push('<a class="glyphicon glyphicon-remove fail" title="" data-id="'+checkReportAdd.length+'" report-persistence="false"></a>');
	html.push('<input type="text" placeholder="备注">');
	$parentObj.append(html.join(" "));
	//输入框获取焦点
	$parentObj.children("input").focus();
	
	var newInputObj = $parentObj.children("input");
	newInputObj.on('blur',function(){
		bindEventInputBlur($(this));
	});
}

//公司检测结果：通过转未通过   创建的备注输入对象 失去焦点事件
function bindEventInputBlur(obj){
	
	//验证
	if(!checkInput(obj)){
		return;
	}
	var $parentObj = $(obj).parent();
	var thisV = $(obj).val();
	var aHtml = '<a class="glyphicon glyphicon-remove fail" title="'+thisV+'" data-id="'+checkReportAdd.length+'" report-persistence="false"></a>';
	$(obj).remove();
	$parentObj.append(aHtml);
	//新元素添加事件
	var newObj = $parentObj.children(".glyphicon-remove.fail");
	newObj.on('click',function(){
		bindEventF($(this));
	});
	
	//装载数据 commit
	autoLoadDataF($parentObj);
	
}

//输入框验证
function checkInput(obj){
	var $parentObj = $(obj).parent();
	var thisV = $(obj).val();
	if( thisV== null || thisV == ""){
		layer.msg("请输入备注");
		$(obj).focus();
		return false;
	}
	//html标签过滤
	
	return true;
}
//检测  通过转未通过    装载数据 commit
function autoLoadDataF(obj){
	var $parentObj = $(obj);
	var dataValue = $parentObj.attr("data-value");
	var dataCode = $parentObj.attr("data-code");
	
	var $aObj = $parentObj.children("a");
	var persistence = $aObj.attr("report-persistence");
	var dataId = $aObj.attr("data-id");
	var dataRemark = $aObj.attr("title");
	
	if(persistence == false || persistence == 'false'){
		//新加数据
		var data = {};
		//data.id=dataId;
		data.ckState=2;
		data.ckName=dataValue;
		data.ckCode=dataCode;
		data.ckRemark=dataRemark;
		//持久态数据
		reportUniqueCheck(dataCode,2);
		
		checkReportAdd.push(data);
	}else{
		
		//不会进入此 代码块  ， 因为所有持久化而且是未通过的，不提供修改，进入autoLoadDataF(obj)方法，是出现输入框失去焦点的，
		//而出现输入框必须是从通过转未通过，所有通过状态都未做入库，也就是所有通过状态 都是非持久化对象
		//如果从持久化  未通过状态进入通过状态 时，持久化对象将进入  删除队列  checkReportDel ，然后再进入未通过时，就是新加的对象
		//所以不会进入此分支
		
		//非持久态数据
		reportUniqueCheck(dataId,1);
		//记录 要删除的持久化数据ID
		checkReportDel.push(dataId);
	}
}

//公司检测报告  提交数据去重 
/* 
	公司检测报告  提交数据去重
	value  :  持久化对象的ID   或    	非持久化对象的CODE
	flag   :  1  持久化         2 非持久化
*/
function reportUniqueCheck(value,flag){
	if(flag == 1){
		//持久态数据
		for(var i = 0 , j = checkReportDel.length;i<j;i++){
			var thisId = checkReportDel[i];
			if(thisId == value){
				//删除指定下标的元素
				checkReportDel.splice(i,1);
			}
		}
		return;
	}
	if(flag == 2){
		//非持久态数据
		for(var i = 0 , j = checkReportAdd.length;i<j;i++){
			//如果当前检测项的CODE处于新增队列 ，说明是对此对象 进行了修改
			var thisCode = checkReportAdd[i].ckCode;
			if(thisCode == value){
				//删除指定下标的元素
				checkReportAdd.splice(i,1);
			}
		}
		return ;
	}
}